home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1987 October
/
Ahoy_Magazine_87-10_1987_Double_L_Side_A.d64
/
Linked List
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
2KB
|
66 lines
10 rem ==========================
20 rem linked list showoff
30 rem rupert report #46
40 rem ==========================
50 num=50 :rem number of odd integers
60 dim nfo(2*num),lnk(2*num),a(2*num)
70 rem - create linked list of 50 odd
80 rem integers from 1 to 99
90 t0=ti
100 print"[147]working on linked list ..."
110 for k=1 to num
120 lnk(k)=k+1 : nfo(k)=2*k-1 : next
130 lnk(k-1)=-1 :rem last link
140 rem
150 rem - insert even integers n into
160 rem list with subscripts 51-100
170 nxt=num+1 : prev=1 : n=2
180 oldlnk=lnk(prev) : lnk(prev)=nxt
190 nfo(nxt)=n : lnk(nxt)=oldlnk
200 prev=prev+1 : n=n+2
210 nxt=nxt+1:if lnk(nxt-1)<>-1 then 180
220 rem
230 rem - delete odd integers from list
240 rem they have subscripts 1-50
250 first=lnk(1) :rem move first pointer
260 k=first : lnk(1)=-1
270 oldlnk=lnk(k) : lnk(k)=lnk(oldlnk)
280 lnk(oldlnk)=-1
290 k=k+1 : if lnk(k)<>-1 then 270
300 rem
310 rem - print linked list
320 k=first
330 print nfo(k);
340 k=k+1 : if lnk(k-1)<>-1 then 330
350 tl=(ti-t0)/60 : print
360 print "linked list took "tl"seconds"
370 rem ============================
380 rem - create array of 50 odd
390 rem integers from 1 to 99
400 t0=ti
410 print : print"working on array ..."
420 for k=1 to num
430 a(k)=2*k-1 : next
440 rem
450 rem -insert even integers n with
460 rem subscripts 2-100 by 2's
470 p=2 :rem pointer to next element
480 rem - move all items up
490 for k=num+1 to p+1 step -1
500 a(k)=a(k-1) : next
510 rem - insert new integer
520 a(p)=p : p=p+2 :if p<=2*num then 490
530 rem - delete odd integers
540 p=1 : last=num*2
550 rem - move all items down
560 for k=p to last-1
570 a(k)=a(k+1) : next
580 last=last-1 : p=p+1
590 if last>=num then 560
600 rem - print array
610 rem
620 for k=1 to num
630 print a(k); : next
640 ta=(ti-t0)/60 : print
650 print "array took " ta "seconds"